package ae.pcfc.cldos.online.common.facade;

import java.util.List;

import ae.pcfc.cldos.online.common.vo.AppMetaDataVO;
import ae.pcfc.cldos.online.common.vo.StatusVO;
import ae.pcfc.cldos.online.common.vo.UserVO;
import ae.pcfc.cldos.online.common.vo.notifications.NotificationRequestVO;
import ae.pcfc.cldos.online.common.vo.notifications.NotificationVO;
import ae.pcfc.cldos.online.common.vo.notifications.NotificationsVO;
import ae.pcfc.cldos.online.common.vo.tasks.TaskRequestVO;
import ae.pcfc.cldos.online.common.vo.tasks.TasksVO;

/**
 * 
 * @author arosa
 *
 */
public interface AdminTasksFacade extends Facade {

	public TasksVO getAdminTaskList(TaskRequestVO taskRequestVO);
	
	public NotificationsVO getUserNotifications(NotificationRequestVO notificationRequestVO);
	
	public AppMetaDataVO getPlainAppMetaDataVO(String appId) throws Exception;
	
	public TasksVO getAllAppRequests(TaskRequestVO taskRequestVO);
	
	public NotificationVO getNotificationDetail(Long msgId);
	
	public List<StatusVO> findApplicationStatusByType(String statusType);
	
	public Integer getNewNotificationsCount(UserVO userVO);
	
	public Integer getNewTasksCount(UserVO userVO);
	
	public void markNotificationAsReaded(String mesId, UserVO userVO);
	
	public TasksVO getAllAppRequestsForTksAdmin(TaskRequestVO taskRequestVO,String tksId);
}
